The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In computer networks such as the Internet, packets of data are sent from a source to a destination via a network of elements including links (communication paths such as telephone or optical lines) and nodes (usually routers directing the packet along one or more of a plurality of links connected to it) according to one of various routing protocols.
One class of routing protocol is the link state protocol. The link state protocol relies on a routing algorithm resident at each node. Each node on the network advertises, throughout the network, links to neighboring nodes and provides a cost associated with each link, which can be based on any appropriate metric such as link bandwidth or delay and is typically expressed as an integer value. A link may have an asymmetric cost, that is, the cost in the direction AB along a link may be different from the cost in the direction BA. Based on the advertised information in the form of a link state packet (LSP) each node constructs a link state database (LSDB), which is a map of the entire network topology and from that constructs generally a single optimum route to each available node based on an appropriate algorithm such as, for example, a shortest path first (SPF) algorithm. As a result a “spanning tree” (SPT) is constructed, rooted at the node and showing an optimum path including intermediate nodes to each available destination node. The results of the SPF are stored in a routing information base (RIB) and based on these results the forwarding information base (FIB) or forwarding table is updated to control forwarding of packets appropriately. When there is a network change an LSP representing the change is flooded through the network by each node adjacent the change, each node receiving the LSP and sending it to each adjacent node.
As a result, when a data packet for a destination node arrives at a node (the “first node”), the first node identifies the optimum route to that destination and forwards the packet to the next node along that route. The next node repeats this step and so forth.
Generally, data is forwarded along a single link to an adjacent node but in some instances an “equal cost path split” occurs in which two or more equal lowest cost routes are available. In that case the forwarding node will implement load balancing whereby the load is shared equally between the links.
Problems arise in networks when congestion occurs in parts of the network. A known solution to the problem is to avoid such congestion by engineering the costs of the links to reflect their capacity. One such approach is described in B. Fortz and M. Thorup, “Internet traffic engineering by optimizing OSPF weights,” in Proc. IEEE INFOCOM, pp. 519-528, 2000 (“Thorup et al”) in which the cost of a link is inversely proportional to its capacity or bandwidth as a result of which less traffic is routed over low capacity links.
However problems arise with the approach set out in Thorup et al. In particular load will either be spread evenly between equal cost routes or not at all in that arrangement.